public final void interfaceMemberDecl() throws RecognitionException {
		int interfaceMemberDecl_StartIndex = input.index();

		try {
			if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return; }

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:398:5: ( interfaceMethodOrFieldDecl | interfaceGenericMethodDecl | 'void' Identifier voidInterfaceMethodDeclaratorRest | interfaceDeclaration | classDeclaration )
			int alt41=5;
			switch ( input.LA(1) ) {
			case Identifier:
			case 65:
			case 67:
			case 71:
			case 77:
			case 85:
			case 92:
			case 94:
			case 105:
				{
				alt41=1;
				}
				break;
			case 53:
				{
				alt41=2;
				}
				break;
			case 118:
				{
				alt41=3;
				}
				break;
			case 58:
			case 93:
				{
				alt41=4;
				}
				break;
			case ENUM:
			case 72:
				{
				alt41=5;
				}
				break;
			default:
				if (state.backtracking>0) {state.failed=true; return;}
				NoViableAltException nvae =
					new NoViableAltException("", 41, 0, input);
				throw nvae;
			}
			switch (alt41) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:398:7: interfaceMethodOrFieldDecl
					{
					pushFollow(FOLLOW_interfaceMethodOrFieldDecl_in_interfaceMemberDecl914);
					interfaceMethodOrFieldDecl();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:399:9: interfaceGenericMethodDecl
					{
					pushFollow(FOLLOW_interfaceGenericMethodDecl_in_interfaceMemberDecl924);
					interfaceGenericMethodDecl();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:400:9: 'void' Identifier voidInterfaceMethodDeclaratorRest
					{
					match(input,118,FOLLOW_118_in_interfaceMemberDecl934); if (state.failed) return;
					match(input,Identifier,FOLLOW_Identifier_in_interfaceMemberDecl936); if (state.failed) return;
					pushFollow(FOLLOW_voidInterfaceMethodDeclaratorRest_in_interfaceMemberDecl938);
					voidInterfaceMethodDeclaratorRest();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 4 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:401:9: interfaceDeclaration
					{
					pushFollow(FOLLOW_interfaceDeclaration_in_interfaceMemberDecl948);
					interfaceDeclaration();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 5 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:402:9: classDeclaration
					{
					pushFollow(FOLLOW_classDeclaration_in_interfaceMemberDecl958);
					classDeclaration();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
			if ( state.backtracking>0 ) { memoize(input, 28, interfaceMemberDecl_StartIndex); }

		}
	}
public final void interfaceMemberDecl ( ) throws RecognitionException { int interfaceMemberDecl_StartIndex = input . index ( ) ; try { if ( state . backtracking > 0 && alreadyParsedRule ( input , 28 ) ) { return ; } int alt41 = 5 ; switch ( input . LA ( 1 ) ) { case Identifier : case 65 : case 67 : case 71 : case 77 : case 85 : case 92 : case 94 : case 105 : { alt41 = 1 ; } break ; case 53 : { alt41 = 2 ; } break ; case 118 : { alt41 = 3 ; } break ; case 58 : case 93 : { alt41 = 4 ; } break ; case ENUM : case 72 : { alt41 = 5 ; } break ; default : if ( state . backtracking > 0 ) { state . failed = true ; return ; } NoViableAltException nvae = new NoViableAltException ( "" , 41 , 0 , input ) ; throw nvae ; } switch ( alt41 ) { case 1 : { pushFollow ( FOLLOW_interfaceMethodOrFieldDecl_in_interfaceMemberDecl914 ) ; interfaceMethodOrFieldDecl ( ) ; state . _fsp -- ; if ( state . failed ) return ; } break ; case 2 : { pushFollow ( FOLLOW_interfaceGenericMethodDecl_in_interfaceMemberDecl924 ) ; interfaceGenericMethodDecl ( ) ; state . _fsp -- ; if ( state . failed ) return ; } break ; case 3 : { match ( input , 118 , FOLLOW_118_in_interfaceMemberDecl934 ) ; if ( state . failed ) return ; match ( input , Identifier , FOLLOW_Identifier_in_interfaceMemberDecl936 ) ; if ( state . failed ) return ; pushFollow ( FOLLOW_voidInterfaceMethodDeclaratorRest_in_interfaceMemberDecl938 ) ; voidInterfaceMethodDeclaratorRest ( ) ; state . _fsp -- ; if ( state . failed ) return ; } break ; case 4 : { pushFollow ( FOLLOW_interfaceDeclaration_in_interfaceMemberDecl948 ) ; interfaceDeclaration ( ) ; state . _fsp -- ; if ( state . failed ) return ; } break ; case 5 : { pushFollow ( FOLLOW_classDeclaration_in_interfaceMemberDecl958 ) ; classDeclaration ( ) ; state . _fsp -- ; if ( state . failed ) return ; } break ; } } catch ( RecognitionException re ) { reportError ( re ) ; recover ( input , re ) ; } finally { if ( state . backtracking > 0 ) { memoize ( input , 28 , interfaceMemberDecl_StartIndex ) ; } } }
src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:397:1: interfaceMemberDecl : ( interfaceMethodOrFieldDecl | interfaceGenericMethodDecl | 'void' Identifier voidInterfaceMethodDeclaratorRest | interfaceDeclaration | classDeclaration );