public final void mCharSetName() throws RecognitionException {
		try {
			int _type = CharSetName;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// HiveLexer.g:434:5: ( '_' ( Letter | Digit | '_' | '-' | '.' | ':' )+ )
			// HiveLexer.g:435:5: '_' ( Letter | Digit | '_' | '-' | '.' | ':' )+
			{
			match('_'); 
			// HiveLexer.g:435:9: ( Letter | Digit | '_' | '-' | '.' | ':' )+
			int cnt103=0;
			loop103:
			while (true) {
				int alt103=2;
				int LA103_0 = input.LA(1);
				if ( ((LA103_0 >= '-' && LA103_0 <= '.')||(LA103_0 >= '0' && LA103_0 <= ':')||(LA103_0 >= 'A' && LA103_0 <= 'Z')||LA103_0=='_'||(LA103_0 >= 'a' && LA103_0 <= 'z')) ) {
					alt103=1;
				}

				switch (alt103) {
				case 1 :
					// HiveLexer.g:
					{
					if ( (input.LA(1) >= '-' && input.LA(1) <= '.')||(input.LA(1) >= '0' && input.LA(1) <= ':')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;

				default :
					if ( cnt103 >= 1 ) break loop103;
					EarlyExitException eee = new EarlyExitException(103, input);
					throw eee;
				}
				cnt103++;
			}

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}