// $ANTLR start "selectClause" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:216:1: selectClause : SELECT ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) ; public HqlParser.selectClause_return selectClause() // throws RecognitionException [1] { HqlParser.selectClause_return retval = new HqlParser.selectClause_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IToken SELECT41 = null; IToken DISTINCT42 = null; HqlParser.selectedPropertiesList_return selectedPropertiesList43 = default(HqlParser.selectedPropertiesList_return); HqlParser.newExpression_return newExpression44 = default(HqlParser.newExpression_return); HqlParser.selectObject_return selectObject45 = default(HqlParser.selectObject_return); IASTNode SELECT41_tree=null; IASTNode DISTINCT42_tree=null; try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:217:2: ( SELECT ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:217:4: SELECT ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) { root_0 = (IASTNode)adaptor.GetNilNode(); SELECT41=(IToken)Match(input,SELECT,FOLLOW_SELECT_in_selectClause990); SELECT41_tree = (IASTNode)adaptor.Create(SELECT41); root_0 = (IASTNode)adaptor.BecomeRoot(SELECT41_tree, root_0); WeakKeywords(); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:219:3: ( DISTINCT )? int alt14 = 2; int LA14_0 = input.LA(1); if ( (LA14_0 == DISTINCT) ) { alt14 = 1; } switch (alt14) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:219:4: DISTINCT { DISTINCT42=(IToken)Match(input,DISTINCT,FOLLOW_DISTINCT_in_selectClause1002); DISTINCT42_tree = (IASTNode)adaptor.Create(DISTINCT42); adaptor.AddChild(root_0, DISTINCT42_tree); } break; } // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:219:15: ( selectedPropertiesList | newExpression | selectObject ) int alt15 = 3; switch ( input.LA(1) ) { case ALL: case ANY: case AVG: case COUNT: case ELEMENTS: case EXISTS: case FALSE: case INDICES: case MAX: case MIN: case NOT: case NULL: case SOME: case SUM: case TRUE: case CASE: case EMPTY: case NUM_INT: case NUM_DOUBLE: case NUM_FLOAT: case NUM_LONG: case OPEN: case BNOT: case PLUS: case MINUS: case COLON: case PARAM: case QUOTED_String: case IDENT: { alt15 = 1; } break; case NEW: { alt15 = 2; } break; case OBJECT: { alt15 = 3; } break; default: NoViableAltException nvae_d15s0 = new NoViableAltException("", 15, 0, input); throw nvae_d15s0; } switch (alt15) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:219:17: selectedPropertiesList { PushFollow(FOLLOW_selectedPropertiesList_in_selectClause1008); selectedPropertiesList43 = selectedPropertiesList(); state.followingStackPointer--; adaptor.AddChild(root_0, selectedPropertiesList43.Tree); } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:219:42: newExpression { PushFollow(FOLLOW_newExpression_in_selectClause1012); newExpression44 = newExpression(); state.followingStackPointer--; adaptor.AddChild(root_0, newExpression44.Tree); } break; case 3 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:219:58: selectObject { PushFollow(FOLLOW_selectObject_in_selectClause1016); selectObject45 = selectObject(); state.followingStackPointer--; adaptor.AddChild(root_0, selectObject45.Tree); } break; } } retval.Stop = input.LT(-1); retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (IASTNode)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } return retval; }
// $ANTLR start "selectClause" // Hql.g:222:1: selectClause : SELECT ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) ; public HqlParser.selectClause_return selectClause() // throws RecognitionException [1] { HqlParser.selectClause_return retval = new HqlParser.selectClause_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IToken SELECT45 = null; IToken DISTINCT46 = null; HqlParser.selectedPropertiesList_return selectedPropertiesList47 = default(HqlParser.selectedPropertiesList_return); HqlParser.newExpression_return newExpression48 = default(HqlParser.newExpression_return); HqlParser.selectObject_return selectObject49 = default(HqlParser.selectObject_return); IASTNode SELECT45_tree=null; IASTNode DISTINCT46_tree=null; try { // Hql.g:223:2: ( SELECT ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) ) // Hql.g:223:4: SELECT ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) { root_0 = (IASTNode)adaptor.GetNilNode(); SELECT45=(IToken)Match(input,SELECT,FOLLOW_SELECT_in_selectClause1030); SELECT45_tree = (IASTNode)adaptor.Create(SELECT45); root_0 = (IASTNode)adaptor.BecomeRoot(SELECT45_tree, root_0); WeakKeywords(); // Hql.g:225:3: ( DISTINCT )? int alt17 = 2; int LA17_0 = input.LA(1); if ( (LA17_0 == DISTINCT) ) { alt17 = 1; } switch (alt17) { case 1 : // Hql.g:225:4: DISTINCT { DISTINCT46=(IToken)Match(input,DISTINCT,FOLLOW_DISTINCT_in_selectClause1042); DISTINCT46_tree = (IASTNode)adaptor.Create(DISTINCT46); adaptor.AddChild(root_0, DISTINCT46_tree); } break; } // Hql.g:225:15: ( selectedPropertiesList | newExpression | selectObject ) int alt18 = 3; switch ( input.LA(1) ) { case ALL: case ANY: case AVG: case COUNT: case ELEMENTS: case EXISTS: case FALSE: case INDICES: case MAX: case MIN: case NOT: case NULL: case SOME: case SUM: case TRUE: case CASE: case EMPTY: case NUM_INT: case NUM_DOUBLE: case NUM_DECIMAL: case NUM_FLOAT: case NUM_LONG: case OPEN: case COLON: case PARAM: case BNOT: case PLUS: case MINUS: case QUOTED_String: case IDENT: { alt18 = 1; } break; case NEW: { alt18 = 2; } break; case OBJECT: { alt18 = 3; } break; default: NoViableAltException nvae_d18s0 = new NoViableAltException("", 18, 0, input); throw nvae_d18s0; } switch (alt18) { case 1 : // Hql.g:225:17: selectedPropertiesList { PushFollow(FOLLOW_selectedPropertiesList_in_selectClause1048); selectedPropertiesList47 = selectedPropertiesList(); state.followingStackPointer--; adaptor.AddChild(root_0, selectedPropertiesList47.Tree); } break; case 2 : // Hql.g:225:42: newExpression { PushFollow(FOLLOW_newExpression_in_selectClause1052); newExpression48 = newExpression(); state.followingStackPointer--; adaptor.AddChild(root_0, newExpression48.Tree); } break; case 3 : // Hql.g:225:58: selectObject { PushFollow(FOLLOW_selectObject_in_selectClause1056); selectObject49 = selectObject(); state.followingStackPointer--; adaptor.AddChild(root_0, selectObject49.Tree); } break; } } retval.Stop = input.LT(-1); retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (IASTNode)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } return retval; }