public final void mHOUR() throws RecognitionException {
		try {
			int _type = HOUR;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// HiveLexer.g:336:8: ( 'hour' | 'hours' | 'hr' ( DOT )? | 'hrs' ( DOT )? )
			int alt71=4;
			int LA71_0 = input.LA(1);
			if ( (LA71_0=='h') ) {
				int LA71_1 = input.LA(2);
				if ( (LA71_1=='o') ) {
					int LA71_2 = input.LA(3);
					if ( (LA71_2=='u') ) {
						int LA71_4 = input.LA(4);
						if ( (LA71_4=='r') ) {
							int LA71_7 = input.LA(5);
							if ( (LA71_7=='s') ) {
								alt71=2;
							}

							else {
								alt71=1;
							}

						}

						else {
							int nvaeMark = input.mark();
							try {
								for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
									input.consume();
								}
								NoViableAltException nvae =
									new NoViableAltException("", 71, 4, input);
								throw nvae;
							} finally {
								input.rewind(nvaeMark);
							}
						}

					}

					else {
						int nvaeMark = input.mark();
						try {
							for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
								input.consume();
							}
							NoViableAltException nvae =
								new NoViableAltException("", 71, 2, input);
							throw nvae;
						} finally {
							input.rewind(nvaeMark);
						}
					}

				}
				else if ( (LA71_1=='r') ) {
					int LA71_3 = input.LA(3);
					if ( (LA71_3=='s') ) {
						alt71=4;
					}

					else {
						alt71=3;
					}

				}

				else {
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 71, 1, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 71, 0, input);
				throw nvae;
			}

			switch (alt71) {
				case 1 :
					// HiveLexer.g:336:10: 'hour'
					{
					match("hour"); 

					}
					break;
				case 2 :
					// HiveLexer.g:336:21: 'hours'
					{
					match("hours"); 

					}
					break;
				case 3 :
					// HiveLexer.g:336:33: 'hr' ( DOT )?
					{
					match("hr"); 

					// HiveLexer.g:336:38: ( DOT )?
					int alt69=2;
					int LA69_0 = input.LA(1);
					if ( (LA69_0=='.') ) {
						alt69=1;
					}
					switch (alt69) {
						case 1 :
							// HiveLexer.g:
							{
							if ( input.LA(1)=='.' ) {
								input.consume();
							}
							else {
								MismatchedSetException mse = new MismatchedSetException(null,input);
								recover(mse);
								throw mse;
							}
							}
							break;

					}

					}
					break;
				case 4 :
					// HiveLexer.g:336:46: 'hrs' ( DOT )?
					{
					match("hrs"); 

					// HiveLexer.g:336:52: ( DOT )?
					int alt70=2;
					int LA70_0 = input.LA(1);
					if ( (LA70_0=='.') ) {
						alt70=1;
					}
					switch (alt70) {
						case 1 :
							// HiveLexer.g:
							{
							if ( input.LA(1)=='.' ) {
								input.consume();
							}
							else {
								MismatchedSetException mse = new MismatchedSetException(null,input);
								recover(mse);
								throw mse;
							}
							}
							break;

					}

					}
					break;

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