docs: public final void switchLabel() throws RecognitionException {
  		int switchLabel_StartIndex = input.index();
  
  		try {
  			if ( state.backtracking>0 && alreadyParsedRule(input, 98) ) { return; }
  
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1031:5: ( 'case' constantExpression ':' | 'case' enumConstantName ':' | 'default' ':' )
  			int alt130=3;
  			int LA130_0 = input.LA(1);
  			if ( (LA130_0==68) ) {
  				int LA130_1 = input.LA(2);
  				if ( ((LA130_1 >= CharacterLiteral && LA130_1 <= DecimalLiteral)||LA130_1==FloatingPointLiteral||LA130_1==HexLiteral||(LA130_1 >= OctalLiteral && LA130_1 <= StringLiteral)||LA130_1==29||LA130_1==36||(LA130_1 >= 40 && LA130_1 <= 41)||(LA130_1 >= 44 && LA130_1 <= 45)||LA130_1==53||LA130_1==65||LA130_1==67||(LA130_1 >= 70 && LA130_1 <= 71)||LA130_1==77||(LA130_1 >= 79 && LA130_1 <= 80)||LA130_1==82||LA130_1==85||LA130_1==92||LA130_1==94||(LA130_1 >= 97 && LA130_1 <= 98)||LA130_1==105||LA130_1==108||LA130_1==111||LA130_1==115||LA130_1==118||LA130_1==126) ) {
  					alt130=1;
  				}
  				else if ( (LA130_1==Identifier) ) {
  					int LA130_23 = input.LA(3);
  					if ( (synpred190_Java()) ) {
  						alt130=1;
  					}
  					else if ( (synpred191_Java()) ) {
  						alt130=2;
  					}
  
  					else {
  						if (state.backtracking>0) {state.failed=true; return;}
  						int nvaeMark = input.mark();
  						try {
  							for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
  								input.consume();
  							}
  							NoViableAltException nvae =
  								new NoViableAltException("", 130, 23, input);
  							throw nvae;
  						} finally {
  							input.rewind(nvaeMark);
  						}
  					}
  
  				}
  
  				else {
  					if (state.backtracking>0) {state.failed=true; return;}
  					int nvaeMark = input.mark();
  					try {
  						input.consume();
  						NoViableAltException nvae =
  							new NoViableAltException("", 130, 1, input);
  						throw nvae;
  					} finally {
  						input.rewind(nvaeMark);
  					}
  				}
  
  			}
  			else if ( (LA130_0==74) ) {
  				alt130=3;
  			}
  
  			else {
  				if (state.backtracking>0) {state.failed=true; return;}
  				NoViableAltException nvae =
  					new NoViableAltException("", 130, 0, input);
  				throw nvae;
  			}
  
  			switch (alt130) {
  				case 1 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1031:7: 'case' constantExpression ':'
  					{
  					match(input,68,FOLLOW_68_in_switchLabel4450); if (state.failed) return;
  					pushFollow(FOLLOW_constantExpression_in_switchLabel4452);
  					constantExpression();
  					state._fsp--;
  					if (state.failed) return;
  					match(input,51,FOLLOW_51_in_switchLabel4454); if (state.failed) return;
  					}
  					break;
  				case 2 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1032:9: 'case' enumConstantName ':'
  					{
  					match(input,68,FOLLOW_68_in_switchLabel4464); if (state.failed) return;
  					pushFollow(FOLLOW_enumConstantName_in_switchLabel4466);
  					enumConstantName();
  					state._fsp--;
  					if (state.failed) return;
  					match(input,51,FOLLOW_51_in_switchLabel4468); if (state.failed) return;
  					}
  					break;
  				case 3 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1033:9: 'default' ':'
  					{
  					match(input,74,FOLLOW_74_in_switchLabel4478); if (state.failed) return;
  					match(input,51,FOLLOW_51_in_switchLabel4480); 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, 98, switchLabel_StartIndex); }
  
  		}
  	}