docs: public final void mCharacterLiteral() throws RecognitionException {
  		try {
  			int _type = CharacterLiteral;
  			int _channel = DEFAULT_TOKEN_CHANNEL;
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1343:5: ( '\\'' ( EscapeSequence |~ ( '\\'' | '\\\\' ) ) '\\'' )
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1343:9: '\\'' ( EscapeSequence |~ ( '\\'' | '\\\\' ) ) '\\''
  			{
  			match('\''); 
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1343:14: ( EscapeSequence |~ ( '\\'' | '\\\\' ) )
  			int alt22=2;
  			int LA22_0 = input.LA(1);
  			if ( (LA22_0=='\\') ) {
  				alt22=1;
  			}
  			else if ( ((LA22_0 >= '\u0000' && LA22_0 <= '&')||(LA22_0 >= '(' && LA22_0 <= '[')||(LA22_0 >= ']' && LA22_0 <= '\uFFFF')) ) {
  				alt22=2;
  			}
  
  			else {
  				NoViableAltException nvae =
  					new NoViableAltException("", 22, 0, input);
  				throw nvae;
  			}
  
  			switch (alt22) {
  				case 1 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1343:16: EscapeSequence
  					{
  					mEscapeSequence(); 
  
  					}
  					break;
  				case 2 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1343:33: ~ ( '\\'' | '\\\\' )
  					{
  					if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&')||(input.LA(1) >= '(' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) {
  						input.consume();
  					}
  					else {
  						MismatchedSetException mse = new MismatchedSetException(null,input);
  						recover(mse);
  						throw mse;
  					}
  					}
  					break;
  
  			}
  
  			match('\''); 
  			}
  
  			state.type = _type;
  			state.channel = _channel;
  		}
  		finally {
  			// do for sure before leaving
  		}
  	}