public final void selector()

in drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL5Expressions.java [5351:5498]


	public final void selector() throws RecognitionException {
		Token DOT21=null;
		Token DOT22=null;
		Token DOT23=null;
		Token ID24=null;
		Token LEFT_SQUARE25=null;
		Token RIGHT_SQUARE26=null;

		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:652:5: ( ( DOT super_key )=> DOT super_key superSuffix | ( DOT new_key )=> DOT new_key ( nonWildcardTypeArguments )? innerCreator | ( DOT ID )=> DOT ID ( ( LEFT_PAREN )=> arguments )? | ( LEFT_SQUARE )=> LEFT_SQUARE expression RIGHT_SQUARE )
			int alt83=4;
			int LA83_0 = input.LA(1);
			if ( (LA83_0==DOT) ) {
				int LA83_1 = input.LA(2);
				if ( (synpred36_DRL5Expressions()) ) {
					alt83=1;
				}
				else if ( (synpred37_DRL5Expressions()) ) {
					alt83=2;
				}
				else if ( (synpred38_DRL5Expressions()) ) {
					alt83=3;
				}

				else {
					if (state.backtracking>0) {state.failed=true; return;}
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 83, 1, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

			}
			else if ( (LA83_0==LEFT_SQUARE) && (synpred40_DRL5Expressions())) {
				alt83=4;
			}

			switch (alt83) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:652:9: ( DOT super_key )=> DOT super_key superSuffix
					{
					DOT21=(Token)match(input,DOT,FOLLOW_DOT_in_selector3804); if (state.failed) return;
					if ( state.backtracking==0 ) { helper.emit(DOT21, DroolsEditorType.SYMBOL); }
					pushFollow(FOLLOW_super_key_in_selector3808);
					super_key();
					state._fsp--;
					if (state.failed) return;
					pushFollow(FOLLOW_superSuffix_in_selector3810);
					superSuffix();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:653:9: ( DOT new_key )=> DOT new_key ( nonWildcardTypeArguments )? innerCreator
					{
					DOT22=(Token)match(input,DOT,FOLLOW_DOT_in_selector3826); if (state.failed) return;
					if ( state.backtracking==0 ) { helper.emit(DOT22, DroolsEditorType.SYMBOL); }
					pushFollow(FOLLOW_new_key_in_selector3830);
					new_key();
					state._fsp--;
					if (state.failed) return;
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:653:84: ( nonWildcardTypeArguments )?
					int alt81=2;
					int LA81_0 = input.LA(1);
					if ( (LA81_0==LESS) ) {
						alt81=1;
					}
					switch (alt81) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:653:85: nonWildcardTypeArguments
							{
							pushFollow(FOLLOW_nonWildcardTypeArguments_in_selector3833);
							nonWildcardTypeArguments();
							state._fsp--;
							if (state.failed) return;
							}
							break;

					}

					pushFollow(FOLLOW_innerCreator_in_selector3837);
					innerCreator();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:654:9: ( DOT ID )=> DOT ID ( ( LEFT_PAREN )=> arguments )?
					{
					DOT23=(Token)match(input,DOT,FOLLOW_DOT_in_selector3853); if (state.failed) return;
					if ( state.backtracking==0 ) { helper.emit(DOT23, DroolsEditorType.SYMBOL); }
					ID24=(Token)match(input,ID,FOLLOW_ID_in_selector3875); if (state.failed) return;
					if ( state.backtracking==0 ) { helper.emit(ID24, DroolsEditorType.IDENTIFIER); }
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:656:19: ( ( LEFT_PAREN )=> arguments )?
					int alt82=2;
					int LA82_0 = input.LA(1);
					if ( (LA82_0==LEFT_PAREN) ) {
						int LA82_1 = input.LA(2);
						if ( (synpred39_DRL5Expressions()) ) {
							alt82=1;
						}
					}
					switch (alt82) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:656:20: ( LEFT_PAREN )=> arguments
							{
							pushFollow(FOLLOW_arguments_in_selector3904);
							arguments();
							state._fsp--;
							if (state.failed) return;
							}
							break;

					}

					}
					break;
				case 4 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:658:9: ( LEFT_SQUARE )=> LEFT_SQUARE expression RIGHT_SQUARE
					{
					LEFT_SQUARE25=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_selector3925); if (state.failed) return;
					if ( state.backtracking==0 ) { helper.emit(LEFT_SQUARE25, DroolsEditorType.SYMBOL); }
					pushFollow(FOLLOW_expression_in_selector3952);
					expression();
					state._fsp--;
					if (state.failed) return;
					RIGHT_SQUARE26=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_selector3977); if (state.failed) return;
					if ( state.backtracking==0 ) { helper.emit(RIGHT_SQUARE26, DroolsEditorType.SYMBOL); }
					}
					break;

			}
		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}